bc223d5e739dc386abfcde35097ca41c2185b65c,SonicField/src/com/nerdscentral/audio/pitch/SF_TimeDomain.java,SF_TimeDomain,Interpret,#Object#SFPL_Context#,24
Before Change
re = new double[NFFT];
im = new double[NFFT];
int j = 0;
for (int i = 0; i < NFFT / 2; ++i)
{
re[i] = signal.getSample(j++);
im[i] = signal.getSample(j++);
}
}
After Change
try (SFSignal signal = Caster.makeSFSignal(input))
{
int NFFT = signal.getLength();
try (
OffHeapArray out = OffHeapArray.doubleArray(NFFT << 1);
OffHeapArray re = OffHeapArray.doubleArray(NFFT);
OffHeapArray im = OffHeapArray.doubleArray(NFFT))
{
int j = 0;
for (int i = 0; i < NFFT / 2; ++i)
{
re.setDouble(i, signal.getSample(j++));
im.setDouble(i, signal.getSample(j++));
}
FFTbase.fft(re, im, out, false);